ДОСЛІДЖЕННЯ ШИФРУ ГЕФФА

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних технологій, автоматики та метрології
Факультет:
Не вказано
Кафедра:
Кафедра захисту інформації

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Методи та засоби криптологічних перетворень
Група:
ІБ-44

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»  Звіт до лабораторної роботи №3 з курсу «Методи та засоби криптологічних перетворень» ДОСЛІДЖЕННЯ ШИФРУ ГЕФФА Виконав: студент групи ІБ-44 Перевірив: Львів – 2010 Мета роботи - вивчити алгоритм закодування відкритого тексту шифром Геффа та навчитися розробляти програмне забезпечення для реалізації цього алгоритму на комп'ютері. Теоретичні відомості У генераторі Геффа потоку ключів використовуються три РЗЛЗЗ, об'єднані нелінійним чином. Два РЗЛЗЗ є входами мультиплексора, а третій РЗЛЗЗ управляє виходом мультиплексора. Якщо a1, a2 і a3 - виходи три РЗЛЗЗ, вихід генератора Геффа (Geffe) можна описати як:   Рис.1.4. Генератор Геффа Якщо довжини РЗЛЗЗ рівні п1 , п2 і п3 відповідно, то лінійна складність генератора рівна:  Період генератора рівний найменшому загальному дільникові періодів трьох генераторів . За умови, що ступені трьох примітивних многочленів зворотного зв'язку взаємно прості, період цього генератора буде рівний добутку періодів трьох РЗЛЗЗ. Блок-схема алгоритму - + - + - + - + i=0,8 i++ Остаточна версія програми шифрування #include<stdio.h> #include<conio.h> unsigned short int mask=0xF9; unsigned short int register8_1=0xFF; unsigned short int register8_2=0xA1; unsigned short int register8_3=0x31; unsigned short int temp_bite=0; int fibon(unsigned short int &register8) { unsigned short int register_temp=0; for(int i=7;i>=0;i--) {int zsyv; zsyv=((mask>>i)?i:9); register_temp=register_temp ^ (register8>>zsyv); } register8=((register_temp & 0x01) <<7) |(register8>>1); return (register8 & 0x01); } void main() { FILE *Ptr1,*Ptr2; unsigned char bite1=0; if ((Ptr1=fopen("c:\\qwerty\\OPTEXT.TXT", "r"))== NULL) printf("File could't be open to read\n"); if ((Ptr2=fopen("c:\\qwerty\\CRTEXT.TXT", "w"))== NULL) printf("File could't be open to write\n"); while(!feof(Ptr1)) { bite1=fgetc(Ptr1); if(bite1==255) break; for(int i=0;i<8;i++) { temp_bite<<=1; int temp; temp=fibon(register8_1); temp_bite|=0x01&((temp &fibon(register8_2))^ (~temp & fibon(register8_3))); } bite1=bite1 ^ temp_bite; fputc((bite1),Ptr2); } /*fprintf(Ptr2,"qwqdwdfs");*/ fclose(Ptr1); fclose(Ptr2); printf("done\n"); getch(); } Остаточна версія програми розшифрування #include<stdio.h> #include<conio.h> unsigned short int mask=0xF9; unsigned short int register8_1=0xFF; unsigned short int register8_2=0xA1; unsigned short int register8_3=0x31; unsigned short int temp_bite=0; int fibon(unsigned short int &register8) { unsigned short int register_temp=0; for(int i=7;i>=0;i--) {int zsyv; zsyv=((mask>>i)?i:9); register_temp=register_temp ^ (register8>>zsyv); } register8=((register_temp & 0x01) <<7) |(register8>>1); return (register8 & 0x01); } void main() { // FILE *Ptr1,*Ptr2; unsigned char bite1=0; if ((Ptr1=fopen("c:\\qwerty\\CRTEXT.TXT", "r"))== NULL) printf("File could't be open to read\n"); if ((Ptr2=fopen("c:\\qwerty\\DECRTEXT.TXT", "w"))== NULL) printf("File could't be open to write\n"); while(!feof(Ptr1)) { bite1=fgetc(Ptr1); if(bite...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини